package persistence;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.ArrayList;
import java.util.List;

import javax.swing.JOptionPane;
import javax.swing.plaf.basic.BasicInternalFrameTitlePane.CloseAction;

import com.mysql.jdbc.PreparedStatement;

import entity.Produto;

public class ProdutoDAO extends GenericProdutoDAO implements FachadaProdutoDAO{
		
	public void insert(Produto produto) {
		String sql = "INSERT INTO produtos (nome_produto,tipo,quantidade) VALUES (?,?,?)";
	

		if(produto.getNome_produto().isEmpty()||produto.getTipo().isEmpty()||produto.getTipo()==null){
			
			try {
				getConnection().close();
			} catch (SQLException e) {
				JOptionPane.showMessageDialog(null, "erro: " +e.getMessage());	
			}
		}

		inserir(sql, produto.getNome_produto(), produto.getTipo(), produto.getQuantidade());
		}

	public void atualizar(Produto produto) {
	String sql = "UPDATE esqueto SET nome_produto = ?, tipo = ? , quantidade = ? WHERE cod_produto = ? ";
	try {
		alterar(sql, produto.getCod_produto(),produto.getNome_produto(),produto.getTipo(), produto.getQuantidade());
		JOptionPane.showMessageDialog(null, "sucesso!");
	} catch (SQLException e) {
		JOptionPane.showMessageDialog(null,"Erro: "+ e.getMessage() );
	}
	}

	
	public void excluir(Produto produto) {
	String sql ="DELETE FROM estoque WHERE cod_produto = ?";
	deletar(sql,produto.getCod_produto());
	}
	public List<Produto> listarProduto(){
		String selectSql= "select*from produtos";
		List<Produto> produto = new ArrayList<Produto>();
		
		try {
			java.sql.PreparedStatement pstm = getConnection().prepareStatement(selectSql);
			ResultSet rs = pstm.executeQuery();
			while( rs.next()){
				Produto prod = new Produto();
				prod.setCod_produto(rs.getInt("cod_produto"));
				prod.setNome_produto(rs.getString("nome_produto"));
				prod.setTipo(rs.getString("tipo"));
				prod.setQuantidade(rs.getInt("quantidade"));
				produto.add(prod);
			}
			rs.close();
			pstm.close();
		}catch (SQLException e) 
		{
		JOptionPane.showMessageDialog(null,"Error:   "+e.getMessage());
		}
		return produto;
		
	}



	
	
	
	
	
}
